package com.huahang.fashionpress.service;

import com.huahang.fashionpress.vo.ProductClientVO;
import com.huahang.fashionpress.vo.ProductVO;

import java.util.Date;
import java.util.List;

/**
 * 用户购物车方法
 * @author : 王翰聪
 * @since : 2019/08/25
 * @version : 1.0
 */
public interface ICartService {
    /**
     * 通过用户id，页号和每页数量查询当页的商品列表
     * @param userID 用户id
     * @param currIndex 当前页号
     * @param pageSize 页面数量
     * @return 商品列表
     */
    List<ProductClientVO> getCarList(Integer userID, int currIndex, int pageSize);

    /**
     * 用户删除一件 存在购物车里的商品
     * @param productID 商品id
     * @return 是否成功删除
     */
    boolean deleteSingleProductInCar(String productID, Integer userID);

    /**
     * 根据用户id删除所有购物车内商品
     * @param userID
     * @return
     */
    boolean cartClear(Integer userID);

    /**
     * 向购物车中添加一个商品方法
     * @param productID
     * @param userID
     * @param cartDate 商品添加日期
     * @param productQuantity 添加的商品数量
     * @return
     */
    boolean addProductIntoCart(String productID, Integer userID, Date cartDate, Integer productQuantity);

    /**
     * 修改商品数量方法
     * @param productID
     * @param userID
     * @param productQuantity 商品数量
     * @return
     */
    boolean updateProductQuantity(String productID, Integer userID, Integer productQuantity);

    /**
     * 通过用户id和商品id查询商品
     * @param userID
     * @param productID
     * @return
     */
    ProductClientVO getProductQuantity(Integer userID, String productID);
}
